package main

import (
	"context"
	"fmt"
	"github.com/google/uuid"
	"strings"
	"time"
)

var TraceId = "tranceId"

func main1() {
	// 生成随机ID
	newUUID, _ := uuid.NewUUID()

	// 删除随机ID中的中划线"-"
	randId := strings.ReplaceAll(newUUID.String(), "-", "")

	// 将随机ID封装到valueCtx对象中
	ctx := context.WithValue(context.Background(), TraceId, randId)

	// 利用子协程执行printUserInfo()函数，并将valueCtx对象传入
	go printUserInfo(ctx)

	// 休眠1秒钟，确保子协程有执行的机会
	time.Sleep(time.Second)
}

func printUserInfo(ctx context.Context) {
	// 从上下文对象中获取并打印固定信息
	fmt.Println("traceId : ", ctx.Value(TraceId))
}
